# -*- coding:utf-8 -*-
"""
相关要求：抓取糗事百科的热门段子，过滤掉带有图片的段子
对于每一个段子，都需要爬取：发布者，发布内容，好笑数以及评论数
"""
import re
import urllib
import urllib2

page = 1
url = 'http://www.qiushibaike.com/hot/page/' + str(page)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
           'Referer' : 'http://www.qiushibaike.com/hot'}
try:
    request = urllib2.Request(url, headers=headers)
    response = urllib2.urlopen(request)
    content = response.read().decode('utf-8')
    pattern = re.compile(
        r'<div.*?clearfix">.*?<h2>(.*?)</h2>.*?</div>.*?<div.*?content">.*?<span>(.*?)</span>.*?<div(.*?)stats">.*?number">(.*?)</i>.*?number">(.*?)</i>',
        re.S)
    """
    一共获取了5个分组
    第一个分组：发布者
    第二个分组：发布内容（如果只是含有图片的，在这里就会不匹配）
    第三个分组：判断是否有图片，用re.search查找是否存在img即可
    第四个分组：好笑数
    第五个分组：评论数量
    """
    items = re.findall(pattern, content)
    for item in items:
        hasImg = re.search("img", item[2])
        if not hasImg:
            print u"发布者：%s" % item[0]
            article = item[1].replace("<br/>", "")
            print u"发布内容：%s\n好笑：%s\n评论：%s\n" % (article, item[3], item[4])

except urllib2.URLError, e:
    if hasattr(e, "code"):
        print e.code
    if hasattr(e, "reason"):
        print e.reason